/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidad;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author a
 */
@Entity
@Table(name = "lotes")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Lotes.findAll", query = "SELECT l FROM Lotes l"),
    @NamedQuery(name = "Lotes.findByIdLotes", query = "SELECT l FROM Lotes l WHERE l.idLotes = :idLotes"),
    @NamedQuery(name = "Lotes.findByCantidad", query = "SELECT l FROM Lotes l WHERE l.cantidad = :cantidad"),
    @NamedQuery(name = "Lotes.findByPrecioUnitario", query = "SELECT l FROM Lotes l WHERE l.precioUnitario = :precioUnitario"),
    @NamedQuery(name = "Lotes.findByFechaDeIngreso", query = "SELECT l FROM Lotes l WHERE l.fechaDeIngreso = :fechaDeIngreso"),
    @NamedQuery(name = "Lotes.findByFechaDeVencimiento", query = "SELECT l FROM Lotes l WHERE l.fechaDeVencimiento = :fechaDeVencimiento"),
    @NamedQuery(name = "Lotes.findByActivo", query = "SELECT l FROM Lotes l WHERE l.activo = :activo")})
public class Lotes implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idLotes")
    private Integer idLotes;
    @Basic(optional = false)
    @Column(name = "cantidad")
    private float cantidad;
    @Basic(optional = false)
    @Column(name = "precioUnitario")
    private float precioUnitario;
    @Basic(optional = false)
    @Column(name = "fechaDeIngreso")
    @Temporal(TemporalType.DATE)
    private Date fechaDeIngreso;
    @Column(name = "fechaDeVencimiento")
    @Temporal(TemporalType.DATE)
    private Date fechaDeVencimiento;
    @Basic(optional = false)
    @Column(name = "activo")
    private boolean activo;
    @JoinColumn(name = "Sucursales_idSucursales", referencedColumnName = "idSucursales")
    @ManyToOne
    private Sucursales sucursalesidSucursales;
    @JoinColumn(name = "Producto_idProducto", referencedColumnName = "idProducto")
    @ManyToOne(optional = false)
    private Producto productoidProducto;
    @JoinColumn(name = "OrdenEntrada_idOrdenEntrada", referencedColumnName = "idOrdenEntrada")
    @ManyToOne(optional = false)
    private Ordenentrada ordenEntradaidOrdenEntrada;
    
    public Lotes() {
        this.idLotes=0;        
    }

    public Lotes(Integer idLotes) {
        this.idLotes = idLotes;
    }

    public Lotes(Integer idLotes, float cantidad, float precioUnitario, Date fechaDeIngreso, boolean activo) {
        this.idLotes = idLotes;
        this.cantidad = cantidad;
        this.precioUnitario = precioUnitario;
        this.fechaDeIngreso = fechaDeIngreso;
        this.activo = activo;
    }

    public Integer getIdLotes() {
        return idLotes;
    }

    public void setIdLotes(Integer idLotes) {
        this.idLotes = idLotes;
    }

    public float getCantidad() {
        return cantidad;
    }

    public void setCantidad(float cantidad) {
        this.cantidad = cantidad;
    }

    public float getPrecioUnitario() {
        return precioUnitario;
    }

    public void setPrecioUnitario(float precioUnitario) {
        this.precioUnitario = precioUnitario;
    }

    public Date getFechaDeIngreso() {
        return fechaDeIngreso;
    }

    public void setFechaDeIngreso(Date fechaDeIngreso) {
        this.fechaDeIngreso = fechaDeIngreso;
    }

    public Date getFechaDeVencimiento() {
        return fechaDeVencimiento;
    }

    public void setFechaDeVencimiento(Date fechaDeVencimiento) {
        this.fechaDeVencimiento = fechaDeVencimiento;
    }

    public boolean getActivo() {
        return activo;
    }

    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    public Sucursales getSucursalesidSucursales() {
        return sucursalesidSucursales;
    }

    public void setSucursalesidSucursales(Sucursales sucursalesidSucursales) {
        this.sucursalesidSucursales = sucursalesidSucursales;
    }

    public Producto getProductoidProducto() {
        return productoidProducto;
    }

    public void setProductoidProducto(Producto productoidProducto) {
        this.productoidProducto = productoidProducto;
    }

    public Ordenentrada getOrdenEntradaidOrdenEntrada() {
        return ordenEntradaidOrdenEntrada;
    }

    public void setOrdenEntradaidOrdenEntrada(Ordenentrada ordenEntradaidOrdenEntrada) {
        this.ordenEntradaidOrdenEntrada = ordenEntradaidOrdenEntrada;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idLotes != null ? idLotes.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Lotes)) {
            return false;
        }
        Lotes other = (Lotes) object;
        if ((this.idLotes == null && other.idLotes != null) || (this.idLotes != null && !this.idLotes.equals(other.idLotes))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entidad.Lotes[ idLotes=" + idLotes + " ]";
    }
    
    }
